// 页面加载时获取用户信息
document.addEventListener('DOMContentLoaded', async function() {
    // 从localStorage获取用户ID
    const userInfo = JSON.parse(localStorage.getItem('userInfo'));
    if (!userInfo || !userInfo.id) {
        alert('请先登录！');
        location.href = './login.html';
        return;
    }

    try {
        // 获取用户详细信息
        const res = await axios.get(`/users/info/${userInfo.id}`);
        if (res.data.code === 1) {
            const info = res.data.info;
            // 填充表单
            document.getElementById('username').value = info.username;
            document.getElementById('age').value = info.age || '';
            document.getElementById('gender').value = info.gender || '';
            document.getElementById('nickname').value = info.nickname || '';
        }
    } catch (err) {
        console.error('获取用户信息失败:', err);
        if (err.response?.status === 401) {
            alert('登录已过期，请重新登录');
            location.href = './login.html';
        }
    }
});

// 表单提交处理
document.getElementById('personalForm').addEventListener('submit', async function(e) {
    e.preventDefault();
    
    const userInfo = JSON.parse(localStorage.getItem('userInfo'));
    if (!userInfo || !userInfo.id) {
        alert('请先登录！');
        return;
    }

    // 创建要提交的数据对象
    const data = new URLSearchParams();
    data.append('id', userInfo.id);
    
    // 只有当有值时才添加到请求数据中
    const age = document.getElementById('age').value;
    const gender = document.getElementById('gender').value;
    const nickname = document.getElementById('nickname').value;

    // 昵称是必填的
    if (!nickname) {
        alert('昵称不能为空！');
        return;
    }
    data.append('nickname', nickname);

    // 年龄和性别是选填的
    if (age) {
        data.append('age', age);
    }
    if (gender) {
        data.append('gender', gender);
    }

    try {
        const res = await axios.post('/users/update', data);
        if (res.data.code === 1) {
            alert('修改成功！');
            // 更新localStorage中的用户信息
            const newUserInfo = {...userInfo, 
                nickname,
                ...(age ? {age} : {}),
                ...(gender ? {gender} : {})
            };
            localStorage.setItem('userInfo', JSON.stringify(newUserInfo));
        } else {
            alert('修改失败：' + res.data.message);
        }
    } catch (err) {
        console.error('修改用户信息失败:', err);
        alert('修改失败，请重试');
    }
});

// 修改密码
function modifyPassword() {
    const userInfo = JSON.parse(localStorage.getItem('userInfo'));
    if (!userInfo || !userInfo.id) {
        alert('请先登录！');
        return;
    }
    
    const oldPassword = prompt('请输入原密码：');
    if (!oldPassword) return;
    
    const newPassword = prompt('请输入新密码：');
    if (!newPassword) return;
    
    const rNewPassword = prompt('请再次输入新密码：');
    if (!rNewPassword) return;
    
    if (newPassword !== rNewPassword) {
        alert('两次输入的新密码不一致！');
        return;
    }

    const data = new URLSearchParams();
    data.append('id', userInfo.id);
    data.append('oldPassword', oldPassword);
    data.append('newPassword', newPassword);
    data.append('rNewPassword', rNewPassword);

    axios.post('/users/rpwd', data)
        .then(res => {
            if (res.data.code === 1) {
                alert('修改密码成功，请重新登录！');
                // 清除登录信息
                localStorage.removeItem('token');
                localStorage.removeItem('userInfo');
                location.href = './login.html';
            } else {
                alert('修改密码失败：' + res.data.message);
            }
        })
        .catch(err => {
            console.error('修改密码失败:', err);
            alert('修改密码失败，请重试');
        });
} 